package com.castle.fortress.admin.rule.listRule.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.castle.fortress.admin.rule.listRule.entity.RuleListRuleEntity;
import com.castle.fortress.admin.rule.listRule.dto.RuleListRuleDto;
import com.castle.fortress.admin.rule.listRule.dto.RuleListRuleWithInfoDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Map;
import java.util.List;

/**
 * 规则清单与规则关联表 服务类
 *
 * @author
 * @since 2025-04-22
 */
public interface RuleListRuleService extends IService<RuleListRuleEntity> {

    /**
     * 分页展示规则清单与规则关联表列表
     * @param page
     * @param ruleListRuleDto
     * @return
     */
    IPage<RuleListRuleDto> pageRuleListRule(Page<RuleListRuleDto> page, RuleListRuleDto ruleListRuleDto);


    /**
     * 展示规则清单与规则关联表列表
     * @param ruleListRuleDto
     * @return
     */
    List<RuleListRuleDto> listRuleListRule(RuleListRuleDto ruleListRuleDto);

    /**
     * 批量保存规则清单与规则关联表
     * @param ruleListRuleDtoList 规则清单与规则关联表实体类列表
     * @return 是否保存成功
     */
    boolean saveBatch(List<RuleListRuleDto> ruleListRuleDtoList);

    /**
     * 根据合同ID查询规则清单与规则关联以及规则详细信息
     * @param ruleListRuleDto
     * @return 联合查询结果列表
     */
    List<RuleListRuleWithInfoDto> listRuleListRuleWithInfo(RuleListRuleDto ruleListRuleDto);
}
